{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "xfNT-mlFwxVM"
   },
   "source": [
    "# Autoencoders 介绍"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "ITZuApL56Mny"
   },
   "source": [
    "自编码器（autoencoder, AE）是一类在半监督学习和非监督学习中使用的人工神经网络（Artificial Neural Networks, ANNs），其功能是通过将输入信息作为学习目标，对输入信息进行表征学习（representation learning）。\n",
    "\n",
    "\n",
    "自编码器包含编码器（encoder）和解码器（decoder）两部分。\n",
    "自编码器具有一般意义上表征学习算法的功能，被应用于降维（dimensionality reduction）和异常值检测（anomaly detection）。包含卷积层构筑的自编码器可被应用于计算机视觉问题，包括图像降噪（image denoising）、神经风格迁移（neural style transfer）等 "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "e1_Y75QXJS6h"
   },
   "source": [
    "## 导入 TensorFlow 和其他库"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "id": "YfIk2es3hJEd"
   },
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import tensorflow as tf\n",
    "\n",
    "from sklearn.metrics import accuracy_score, precision_score, recall_score\n",
    "from sklearn.model_selection import train_test_split\n",
    "from tensorflow.keras import layers, losses\n",
    "from tensorflow.keras.datasets import fashion_mnist\n",
    "from tensorflow.keras.models import Model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "iYn4MdZnKCey"
   },
   "source": [
    "## 导入数据集\n",
    "\n",
    "每张图片为 28x28 pixels. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "id": "YZm503-I_tji"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-labels-idx1-ubyte.gz\n",
      "32768/29515 [=================================] - 0s 5us/step\n",
      "40960/29515 [=========================================] - 0s 4us/step\n",
      "Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-images-idx3-ubyte.gz\n",
      "26427392/26421880 [==============================] - 10s 0us/step\n",
      "26435584/26421880 [==============================] - 10s 0us/step\n",
      "Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-labels-idx1-ubyte.gz\n",
      "16384/5148 [===============================================================================================] - 0s 0us/step\n",
      "Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-images-idx3-ubyte.gz\n",
      "4423680/4422102 [==============================] - 1s 0us/step\n",
      "4431872/4422102 [==============================] - 1s 0us/step\n",
      "(60000, 28, 28)\n",
      "(10000, 28, 28)\n"
     ]
    }
   ],
   "source": [
    "(x_train, _), (x_test, _) = fashion_mnist.load_data()\n",
    "\n",
    "x_train = x_train.astype('float32') / 255.\n",
    "x_test = x_test.astype('float32') / 255.\n",
    "\n",
    "print (x_train.shape)\n",
    "print (x_test.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "VEdCXSwCoKok"
   },
   "source": [
    "## 案例一:  autoencoder 基础\n",
    "![Basic autoencoder results](images/intro_autoencoder_result.png)\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "id": "0MUxidpyChjX"
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2021-12-26 12:18:38.259100: I tensorflow/core/platform/cpu_feature_guard.cc:151] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2 FMA\n",
      "To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n"
     ]
    }
   ],
   "source": [
    "latent_dim = 64\n",
    "\n",
    "class Autoencoder(Model):\n",
    "  def __init__(self, latent_dim):\n",
    "    super(Autoencoder, self).__init__()\n",
    "    self.latent_dim = latent_dim   \n",
    "    self.encoder = tf.keras.Sequential([\n",
    "      layers.Flatten(),\n",
    "      layers.Dense(latent_dim, activation='relu'),\n",
    "    ])\n",
    "    self.decoder = tf.keras.Sequential([\n",
    "      layers.Dense(784, activation='sigmoid'),\n",
    "      layers.Reshape((28, 28))\n",
    "    ])\n",
    "\n",
    "  def call(self, x):\n",
    "    encoded = self.encoder(x)\n",
    "    decoded = self.decoder(encoded)\n",
    "    return decoded\n",
    "  \n",
    "autoencoder = Autoencoder(latent_dim) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "id": "9I1JlqEIDCI4"
   },
   "outputs": [],
   "source": [
    "autoencoder.compile(optimizer='adam', loss=losses.MeanSquaredError())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "id": "h1RI9OfHDBsK"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/10\n",
      "1875/1875 [==============================] - 4s 2ms/step - loss: 0.0238 - val_loss: 0.0131\n",
      "Epoch 2/10\n",
      "1875/1875 [==============================] - 3s 2ms/step - loss: 0.0115 - val_loss: 0.0106\n",
      "Epoch 3/10\n",
      "1875/1875 [==============================] - 3s 2ms/step - loss: 0.0100 - val_loss: 0.0097\n",
      "Epoch 4/10\n",
      "1875/1875 [==============================] - 3s 1ms/step - loss: 0.0095 - val_loss: 0.0094\n",
      "Epoch 5/10\n",
      "1875/1875 [==============================] - 3s 1ms/step - loss: 0.0092 - val_loss: 0.0092\n",
      "Epoch 6/10\n",
      "1875/1875 [==============================] - 3s 2ms/step - loss: 0.0090 - val_loss: 0.0090\n",
      "Epoch 7/10\n",
      "1875/1875 [==============================] - 3s 2ms/step - loss: 0.0089 - val_loss: 0.0090\n",
      "Epoch 8/10\n",
      "1875/1875 [==============================] - 2s 1ms/step - loss: 0.0088 - val_loss: 0.0089\n",
      "Epoch 9/10\n",
      "1875/1875 [==============================] - 3s 2ms/step - loss: 0.0088 - val_loss: 0.0089\n",
      "Epoch 10/10\n",
      "1875/1875 [==============================] - 4s 2ms/step - loss: 0.0088 - val_loss: 0.0089\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<keras.callbacks.History at 0x7fde708bc910>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "autoencoder.fit(x_train, x_train,\n",
    "                epochs=10,\n",
    "                shuffle=True,\n",
    "                validation_data=(x_test, x_test))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "wAM1QBhtoC-n"
   },
   "source": [
    "模型训练好，我们进行一下测试"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "id": "Pbr5WCj7FQUi"
   },
   "outputs": [],
   "source": [
    "encoded_imgs = autoencoder.encoder(x_test).numpy()\n",
    "decoded_imgs = autoencoder.decoder(encoded_imgs).numpy()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "id": "s4LlDOS6FUA1"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 1440x288 with 20 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "n = 10\n",
    "plt.figure(figsize=(20, 4))\n",
    "for i in range(n):\n",
    "  # display original\n",
    "  ax = plt.subplot(2, n, i + 1)\n",
    "  plt.imshow(x_test[i])\n",
    "  plt.title(\"original\")\n",
    "  plt.gray()\n",
    "  ax.get_xaxis().set_visible(False)\n",
    "  ax.get_yaxis().set_visible(False)\n",
    "\n",
    "  # display reconstruction\n",
    "  ax = plt.subplot(2, n, i + 1 + n)\n",
    "  plt.imshow(decoded_imgs[i])\n",
    "  plt.title(\"reconstructed\")\n",
    "  plt.gray()\n",
    "  ax.get_xaxis().set_visible(False)\n",
    "  ax.get_yaxis().set_visible(False)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "r4gv6G8PoRQE"
   },
   "source": [
    "## 案例二: 图像去噪声\n",
    "\n",
    "\n",
    "![Image denoising results](images/image_denoise_fmnist_results.png)\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "id": "gDYHJA2PCQ3m"
   },
   "outputs": [],
   "source": [
    "(x_train, _), (x_test, _) = fashion_mnist.load_data()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "id": "uJZ-TcaqDBr5"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(60000, 28, 28, 1)\n"
     ]
    }
   ],
   "source": [
    "x_train = x_train.astype('float32') / 255.\n",
    "x_test = x_test.astype('float32') / 255.\n",
    "\n",
    "x_train = x_train[..., tf.newaxis]\n",
    "x_test = x_test[..., tf.newaxis]\n",
    "\n",
    "print(x_train.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "aPZl_6P65_8R"
   },
   "source": [
    "随机增加一些噪声"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "id": "axSMyxC354fc"
   },
   "outputs": [],
   "source": [
    "noise_factor = 0.2\n",
    "x_train_noisy = x_train + noise_factor * tf.random.normal(shape=x_train.shape) \n",
    "x_test_noisy = x_test + noise_factor * tf.random.normal(shape=x_test.shape) \n",
    "\n",
    "x_train_noisy = tf.clip_by_value(x_train_noisy, clip_value_min=0., clip_value_max=1.)\n",
    "x_test_noisy = tf.clip_by_value(x_test_noisy, clip_value_min=0., clip_value_max=1.)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "wRxHe4XXltNd"
   },
   "source": [
    "打印有噪声的图片\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "id": "thKUmbVVCQpt"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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2eb4ksp9ivc5rq1DhWs8+7vPUwPt3+rgujhu3Li8R237/La5kvh+htcc6POdfxb7Ao8NZm/ctM/179z2LNmErwH8Pf/Odf9//vnn9eKLL4748+JA282x4vv7gd5n9ueBvvPw8UZfe1/ifeV5vt9qe75t2pf7/qjtXYmtL/2ORUnqv8cNjFUk/aGqqj9JUkrpYkkbSWp72MwNe9/73lccu/766wf0of/6r/+a7f/5n/8ZZJMHBydhf3hqg52Ti8nf//734jx+Fx/8fJj93/9trnzHhcw3yb/73e8kzbOjD9qPTey22yvSy7POOqs49re//S3bfMD4xz/+UZz39re/Pdu/+tWvGj+L9/W5554rjh100EH9tslhH3zggQeKY5/97Gez/etf/zrbv/zlL4vz/vjHPzZenz7liySf0BdbbLHGdhh/afj3Qftw3LhxeRLy+8cXeL555IRHnw5iY6Dll18+25wwN9100+I8Ppzw+t6fOQ/80z/9U3GM44iT7nHHHVec1/bQu9Zaa2Wb/v7Nb35TnLfccstlex5+bGLIY/Hf//3fi5832mijbO+///7FMd4H9z3h/OT3nHMjF6k11lijOO/II4/M9oknnphtjilJuvHGG7PtLwze+c53Zpvz8G9/+9vivLZ7/ta3vjXb9Ju/hGR/8QcpPjirg2Nx4sSJ+V77Iv+mN70p29///veLYx/4wAeyzT7raymv6S9quHFaddVVs+0vA+66665sb7XVVtn++c9/Xpy31FJLZZt+k6Szzz47248//ni/30Mq+4L3a2566vWtP+g781teM+fxcmLIY5HzllR+V1/nmx44vO89+eST2faXq1xDv/Od72T7P/7jP4rzzj///Gxvv/322f7e98qqtiussEK/15OkvffeO9sci+wfkrTXXntpILzlLW/JNr+jX99fOnCO+Otf/9qxsThhwgS98Y1vrK9bHOO+zn3gfawJfg//4xgZ6Mt58qEPfaj4+fe/f+Vrtq3Pf/nLK7ev7YFynXXWKX6+5JJLss29lK+Lvu8lq622miTpjjvuaDxHg/TjhAkT8vrk+/Z99tkn295Hef/uvPPObPuDFl9Mf/SjHy2OXXTRRdl+17velW3vv7xHO++8c7Y///nPF+d99atfzbavi0cccYSGC/8Y8+c//znbvi76C+AWOrpHnTJliqTynkvlmPC5kmsX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",
      "text/plain": [
       "<Figure size 1440x144 with 10 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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jkGZmZUkydByHKhWfJFLctuqTJwjJCuPD18LNpcBx7dzLovLL7886Pcf//EfxQy7RdSqLxbDz372M29z7i2bt4LzhVjfYbjik805wvmAuKLb008/HfS75ZZbmht2Oam6Lxaau4HnVFvum+evN99809s2d8+hhx7qbdbUln3nqk82FxfPsZyXzZZ27969e5PvAYArr7zS2+vWrUNLicEX999/f29ztSauCASE8ytXZrP9+JqwFaVY0w0bNnjbVu8788wzCxp7mai6L5aDs846y9s8B9r8MJxfjdetww47LOh3/PHHe5tzowHAv/zLv3ib59es9bO1fyvE4ItcHZZz0G3cuDHox37185//vMm/A2HepilTpgRtnP+M8yPae+oKV7uMwhfrnRh8UaT7YktCvYQQQgghhBBCCCFEDaMHP0IIIYQQQgghhBCR0url3IWwcOiBLSXK28dtCEAavG0dCEMR2LZblbl0pi2ZmnY8OyYObRk5cmTQxmWKTznllNTj1zMcUmLLP/O2Zw6941K3QBiawGF5TfVtpHPnzk3+XRQGl+3mMC0u2Q6E5d05dNP60T777ONtW6ac38c+O2/evCJHnW/seUkLvbjooouC16zVihUrgjYOk2Ufs+W5n332WW+ffvrp3ub5Ggj9zY6P9eJy8YsXLw76bdu2zdtdu3YN2q699lpvf+tb34IAJkyY4O22bdt6e/Xq1UE/DpHNmk+57ctf/nLqMfbee29vH3jggUG/ww8/3NuzZs3K/gICQBhmtXbtF4Vy+JoHgEceecTbJ510krc5RNJi5wQ7D6RRCyW+aw2+tk877bSgjf3g+eef9zavbwCwdetWby9atMjbHLYJhKGur7/+etDG970cgmnvqadPn+5tDucFdr7nEkLEj3b8CCGEEEIIIYQQQkSKHvwIIYQQQgghhBBCRIoe/AghhBBCCCGEEEJEinL8iIrzi1/8wtu25C/n8LBluw844IAmj2fL0fIxOG7elh7m/AUccw2EeWM4j4/NIcN5N2zJTi7n3q5dO2/Xe1w1lzllON8IEOYX4LwTrA0Qasza22PwtWZj6UVxrFy50tuDBw/2tj3//JrzFdgSs6yvzRvDeUu4n81XEDtZOX44Z1WXLl2Cfm+99Za3bZl25oMPPvC29dFly5Y1ebzevXsH/Xgeffnll4M2ng85h4nNI/OVr3zF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",
      "text/plain": [
       "<Figure size 1440x144 with 10 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "n = 10\n",
    "plt.figure(figsize=(20, 2))\n",
    "for i in range(n):\n",
    "    ax = plt.subplot(1, n, i + 1)\n",
    "    plt.title(\"original + noise\")\n",
    "    plt.imshow(tf.squeeze(x_test_noisy[i]))\n",
    "    plt.gray()\n",
    "plt.show()\n",
    "\n",
    "plt.figure(figsize=(20, 2))\n",
    "for i in range(n):\n",
    "    ax = plt.subplot(1, n, i + 1)\n",
    "    plt.title(\"original\")\n",
    "    plt.imshow(tf.squeeze(x_test[i]))\n",
    "    plt.gray()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "Sy9SY8jGl5aP"
   },
   "source": [
    "### 定义一个卷积 autoencoder"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "id": "R5KjoIlYCQko"
   },
   "outputs": [],
   "source": [
    "class Denoise(Model):\n",
    "  def __init__(self):\n",
    "    super(Denoise, self).__init__()\n",
    "    self.encoder = tf.keras.Sequential([\n",
    "      layers.Input(shape=(28, 28, 1)),\n",
    "      layers.Conv2D(16, (3, 3), activation='relu', padding='same', strides=2),\n",
    "      layers.Conv2D(8, (3, 3), activation='relu', padding='same', strides=2)])\n",
    "\n",
    "    self.decoder = tf.keras.Sequential([\n",
    "      layers.Conv2DTranspose(8, kernel_size=3, strides=2, activation='relu', padding='same'),\n",
    "      layers.Conv2DTranspose(16, kernel_size=3, strides=2, activation='relu', padding='same'),\n",
    "      layers.Conv2D(1, kernel_size=(3, 3), activation='sigmoid', padding='same')])\n",
    "\n",
    "  def call(self, x):\n",
    "    encoded = self.encoder(x)\n",
    "    decoded = self.decoder(encoded)\n",
    "    return decoded\n",
    "\n",
    "autoencoder = Denoise()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "id": "QYKbiDFYCQfj"
   },
   "outputs": [],
   "source": [
    "autoencoder.compile(optimizer='adam', loss=losses.MeanSquaredError())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "id": "IssFr1BNCQX3"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/10\n",
      "1875/1875 [==============================] - 60s 32ms/step - loss: 0.0160 - val_loss: 0.0098\n",
      "Epoch 2/10\n",
      "1875/1875 [==============================] - 53s 28ms/step - loss: 0.0090 - val_loss: 0.0085\n",
      "Epoch 3/10\n",
      "1875/1875 [==============================] - 60s 32ms/step - loss: 0.0081 - val_loss: 0.0079\n",
      "Epoch 4/10\n",
      "1875/1875 [==============================] - 63s 33ms/step - loss: 0.0078 - val_loss: 0.0077\n",
      "Epoch 5/10\n",
      "1875/1875 [==============================] - 57s 31ms/step - loss: 0.0076 - val_loss: 0.0075\n",
      "Epoch 6/10\n",
      "1875/1875 [==============================] - 58s 31ms/step - loss: 0.0075 - val_loss: 0.0076\n",
      "Epoch 7/10\n",
      "1875/1875 [==============================] - 58s 31ms/step - loss: 0.0073 - val_loss: 0.0073\n",
      "Epoch 8/10\n",
      "1875/1875 [==============================] - 58s 31ms/step - loss: 0.0072 - val_loss: 0.0072\n",
      "Epoch 9/10\n",
      "1875/1875 [==============================] - 59s 32ms/step - loss: 0.0071 - val_loss: 0.0071\n",
      "Epoch 10/10\n",
      "1875/1875 [==============================] - 64s 34ms/step - loss: 0.0070 - val_loss: 0.0070\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<keras.callbacks.History at 0x7fde35c19610>"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "autoencoder.fit(x_train_noisy, x_train,\n",
    "                epochs=10,\n",
    "                shuffle=True,\n",
    "                validation_data=(x_test_noisy, x_test))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "G85xUVBGTAKp"
   },
   "source": [
    "Summary of the encoder"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "id": "oEpxlX6sTEQz"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential_2\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "conv2d (Conv2D)              (None, 14, 14, 16)        160       \n",
      "_________________________________________________________________\n",
      "conv2d_1 (Conv2D)            (None, 7, 7, 8)           1160      \n",
      "=================================================================\n",
      "Total params: 1,320\n",
      "Trainable params: 1,320\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "autoencoder.encoder.summary()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "DDZBfMx1UtXx"
   },
   "source": [
    "Decoder 从7x7 还原为了 28x28 大小"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "id": "pbeQtYMaUpro"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential_3\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "conv2d_transpose (Conv2DTran (None, 14, 14, 8)         584       \n",
      "_________________________________________________________________\n",
      "conv2d_transpose_1 (Conv2DTr (None, 28, 28, 16)        1168      \n",
      "_________________________________________________________________\n",
      "conv2d_2 (Conv2D)            (None, 28, 28, 1)         145       \n",
      "=================================================================\n",
      "Total params: 1,897\n",
      "Trainable params: 1,897\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "autoencoder.decoder.summary()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "A7-VAuEy_N6M"
   },
   "source": [
    "打印结果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "id": "t5IyPi1fCQQz"
   },
   "outputs": [],
   "source": [
    "encoded_imgs = autoencoder.encoder(x_test).numpy()\n",
    "decoded_imgs = autoencoder.decoder(encoded_imgs).numpy()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "id": "sfxr9NdBCP_x"
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABG4AAAD3CAYAAABM6xLyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAAAsTAAALEwEAmpwYAACXyUlEQVR4nO2dd7gdVfWG16RAgNB7gEAEgdBEpAg/EGkKghQBUXpRigqIdEFURKQLCEiVJlIEBBGQpnSkgwgIoYcSSgKRkpAEzu+P3LN595c7k3Nvzk3Oufne5/FxXWafOXNm7TaT9a1V1Gq1MMYYY4wxxhhjjDGtR59pfQHGGGOMMcYYY4wxpnP84sYYY4wxxhhjjDGmRfGLG2OMMcYYY4wxxpgWxS9ujDHGGGOMMcYYY1oUv7gxxhhjjDHGGGOMaVH84sYYY4wxxhhjjDGmRenxFzdFUZxZFMXPmt12MudZrCiKWlEU/ab0XM2gKIrBRVF8UBRF32l9Ld3BPmx/H0bYjxHt70f7sP19GGE/RrS/H+1D+7Cb32kfNhn7sf39aB+2vw8j7MeInvdjUavVeuK805SiKBaLiBcjon+tVpswjS/HdAP7sHdgP7Y/9mHvwH5sf+zD9sc+7B3Yj+2Pfdg7mN782KMRN+3w1rAoil8URfGLaX0drYp92DuwH9sf+7B3YD+2P/Zh+2Mf9g7sx/bHPuwd2I9Thy6/uCmKYmhRFLcXRfFeURRPFkWxKY5dUBTF74uiuKEoig8jYp2O/3YU2hxUFMUbRVG8XhTF9zrCm5bA54/qsL9aFMWrRVHsXxTFWx2f2QXn2bgoikeLovhfURTDp4YjOq51z6IohnX8/tOLoig6jvUpiuLwoihe7rjei4qimL3jWBbGVRTFzkVRvFAUxftFUbxYFMV2+I5di6J4uiiKd4uiuKkoikV74HfYh23uw47vsR/b3I/2Yfv7sON77Mc296N9aB/ah9Pehx3fYz+2uR/tw/b3Ycf32I8t5scuvbgpiqJ/RFwXETdHxHwRsXdEXFIUxVJotm1E/DoiZo2Iu+XzG0bETyJi/YhYIiK+OpmvXCAiZo+IhSJit4g4vSiKOTuOfRgRO0bEHBGxcUTsVRTF5l35Pd1kk4hYJSJWiIhvR8TXO/77zh3/WyciPhcRAyPiNP1wURSzRMSpEbFRrVabNSLWiIjHOo5tFhE/jYhvRcS8EXFXRFzazIu3DyOizX3Y8T32Y5v70T6MiDb3Ycf32I9t7kf7MCLsQ/vQ86n92ATsw4hocx92fI/92IJ+7GrEzZc7Lu6YWq02rlar/SMi/hYR30Wba2u12j21Wu3TWq02Vj7/7Yg4v1arPVmr1T6KiF9M5vvGR8SRtVptfK1WuyEiPoiIpSIiarXa7bVa7YmO7/l3TPyxa3fx93SHY2q12nu1Wu2ViPhnRKzY8d+3i4iTarXaC7Va7YOIODQivlN0nizp04hYriiKmWq12hu1Wu3Jjv++Z0T8plarPd2h0zs6IlZs5A1cF7AP29+HEfZjRPv70T5sfx9G2I8R7e9H+9A+tA8n4vnUfpxS7MP292GE/RjRgn7s6oubQRExvFarfYr/9nJMfDtWZ/jkPt9g24iIkbU80dBHMbETRVEUqxVF8c+iKN4uimJ0TLwB80zuB3R89m/FxLCn9yLikIg4pP53URR/m8zHR3R2PTHxt72MYy9HRL+ImJ8frtVqH0bENh3X+0ZRFNcXRbF0x+FFI+IUXNuoiCgiv79Tin3Y/j6sX6v92Mn1RPv40T5sfx/Wr9V+7OR6on38aB/ah/bhtPdh/Vrtx06uJ9rHj/Zh+/uwfq32YyfXE9PQj119cfN6RCxSFAU/NzgiXuN1Vnz+jYhYGH8v0sXvJ3+KiL9GxCK1Wm32iDgzJv7gyVKr1Tap1Wpz1Gq1OSLimJj4Rm2Ojv9t0s3reT0mOqHO4IiYEBFvdvL9N9VqtQ0iYsGI+G9EnNNxaHhE7IFrmaNWq81Uq9Xu7eY1lV2nfdg57eLD+rXaj53TLn60D8tpFx/Wr9V+7Jx28aN9WI592HXsw+5jP5bTLn60D8tpFx/Wr9V+7Jxp5seuvri5Pya+cTqoKIr+RVF8NSK+GRGXNfj5KyJil2JisqOZI2JK6rfPGhGjarXa2KIoVo2JOrtpyaURsV9RFEOKohgYE0OeLq9JabKiKOYvimKzYqLu7eOYGApWf5t5ZkQcWhTFsh1tZy+KYusmX6d9WE67+DDCfqyiXfxoH5bTLj6MsB+raBc/2ofl2Iddxz7sPvZjOe3iR/uwnHbxYYT9WMU082OXXtzUarVxMdFpG0XEOxFxRkTsWKvV/tvg52+MiUl6/hkRz0XEvzoOfdyV6+jgBxFxZFEU70fEETGxg0xL/hARF0fEnTGxnvzYmJjISekTE5M1vR4Tw6LWjoi9IiJqtdpfIuLYiLisKIr/RcR/YuK9bhr2YSVt4cOO77Efy2kLP9qHlbSFDzu+x34spy38aB9WYh92Hfuwm9iPlbSFH+3DStrChx3fYz+WM838WNRqVVFOPUtRFENj4oXOqG+pTHtgH/YO7Mf2xz7sHdiP7Y992P7Yh70D+7H9sQ97B/Zjc+iqVGqKKYpii6IoZiwmlvg6NiKuswPbC/uwd2A/tj/2Ye/Afmx/7MP2xz7sHdiP7Y992DuwH5vPVH9xExF7RMRbEfF8RHwSHSFDpq2wD3sH9mP7Yx/2DuzH9sc+bH/sw96B/dj+2Ie9A/uxyUxTqZQxxhhjjDHGGGOMKWdaRNwYY4wxxhhjjDHGmAbwixtjjDHGGGOMMcaYFqVfVxoXRVEriiIiImadddbs2P/+97+GzjFgwIBkjx07titf32X69++f7PHjxzf8ufpvjIjo27dvsidMyPMp8bfwMxERlKBV/c4ZZ5wx2X365O/RxowZw/PlX9BNiqIo1cYNGjQo2W+//XZ2jPeP9+STTz7J2s0888zJ/uijj0qvg+f49NNPs2OLLLJIsl955ZXSc8w222zJ1ns877zzJpv38cMPP8zaffxxeVU6+rRfv8+GisoL+VuqzhcR79RqtXmrGjRKURS1en/R+zfDDDMkW4+xj40bN65b380+S+aYY47sb94zovePvuOY1ba89hEjRmTt6AM9P/sJ/cN+EZH/rio/9sRYnGWWWbJjvJevvfZadoz3Qf1LOD8pvM+8Xzqvv/HGG8lefPHFk61jm/O/zmMzzTRTsjmP6Dmq7jnPQb9VzbvsExGTzFVNG4v9+vWr1e+nfifH4rvvvpsdY78kupZWzZVlvtN5mfd6vvnmS7bOh+wXvOcR+ZrAtVB/x/vvv59s7de8Lh1/pGqNqY/T8ePHxyeffNL0sajzFn9rVX8jVeeo6pdDhw5NNtfSiIiRI0cme+6550629iv2uVGjRmXH6PuqsTh8+PBoBPYR3R/x/Ho/ZB1q2ljs27dvrf5dur7RdzpHaR8rg79Df++Uoutn1fggk9lzJOacc87sb/YbjmHtC1W/s/65MWPGxLhx45oyFvv06ZN8qPt27g21j/L+cV5T33IOnWuuubJjHC+cu3TM0jfzzDNPsjm+IvJ9ivY5rq3dhWs8+7vOU43272jiutinT5+0R636/qq5kuh+huds9PlOv4t9gce6sjcu2+fqb656lixD1wB+Tn9zvf9/+OGH8fHHH/f482IVvG6OFd3fN3qf2Z8bTe+i442+1r7E+8p2ut+qer4t25fr/qjqXYmsL6VjsasvbtKJv/zlL2fHbr755obOscQSSyT7P//5T1e+vstwEtWHnyrYubgYvPXWW1k7/hYdvHwY/e9/y0vecyHSTe6///3viGi8o04pe+31Wc6os846Kzv26quvJpsPCO+9917Wbplllkn2Qw89VPpdvK8ffPBBduzQQw/t9JoU9sFnn302O/aDH/wg2Y8++miyH3jggazd888/X3p++pQvgnRCnn322UuvQ3i56mBX6NOnT5pE9P7xBZxu/jhh0addWNhjscUWSzYnvC233DJrx4cLnl/7M+eBhRdeODvGccRJ89hjj83aVT20rrfeesmmvx977LGs3aKLLprsyfix6ay44orZ35tttlmyDzrooOwY74P6nnB+0nvOuZGLzNprr521O/LII5N94oknJptjKiLi1ltvTbY+8C+33HLJ5jz8+OOPZ+2q7vlSSy2VbPpNXyKyv+iDEB98o4ljsX///ule6yK90EILJfvPf/5zduz//u//ks0+q2spz6kvWrjxWW211ZKtD/MPP/xwsrfddttk/+tf/8raLbjggsmm3yIizj777GS/+eabnf6OiLwvaL/mpqW+vnUGfSd+S2tmoy8XugrnrYj8t+o6X/bAoH3vnXfeSba+HOUaevHFFyf7S1/6UtbuwgsvTPZOO+2U7CuuuCJrN2TIkE7PFxGx3377JZtjkf0jIuLHP/5xNMKSSy6ZbP5GPb++NOAc8corrzRtLPbr1y8WWGCB+nmzY9zXqQ+0j5XB36H/uEUafblOvvrVr2Z/P/XUU8muWp9ffvmz21f1QPi1r30t+/vyyy9PNvdSui7qvpesvvrqERFx3333lbbpKv369Uvrk+7b999//2RrH+X9e/DBB5OtD0p8sfz1r389O3bppZcme/nll0+29l/eo9133z3ZP/rRj7J2xx9/fLJ1XfzlL38ZUwr/MeWll15Ktq6L+gK3gqbuUQcOHBgR+T2PyMeEzpVcu9jvue+MyP36+uuvZ8fKHvR1bufDN1/icUxNDl4/x732O845VXMHWXrppbO/uVZw/x7x2T73tttua+jcPQmv+4knnkh2fW6uU/UP84TPLY2+0K73vTr0h/Ylrl3cQ+r+mnsifZYs25d35V0JXwKPGDGitBNaKmWMMcYYY4wxxhjTonQp4qZWq6V/Yar6l17+C3dE/jZeJQ5lMNw3ImLjjTdO9rBhw5LNt+IR+RtzviXnvz5H5G+AH3nkkewY/xWTb/H1X7a6EzGkoZl8G/ziiy+WHpsa/OxnP2uoXdUbT0bZHHzwwdkx/qs5/fHcc89l7XbZZZdk8/7r22f+S5D+qxDfjF522WXJ3n777bN2Z5xxRrL1X4D5L7q89n/+859ZO4a3a9RA1e+cEvr375/eXuu/ZvCtrUY18F+M+S/ld955Z+l36b82rbvuusnm/dPfzn+N/dOf/pRs/ZdFRgjpv3TwX0T4r8L8F+eI/F+W9V84r7rqqmQfeOCBydZ/WeS/yGrkxAorrNDpZ5rFPffck/3Nf1lZZ511smPsf4yQ0NBrzqHsExER++67b7K/8Y1vJPsPf/hD1u7qq69ONv3EiKCIiA033DDZGobK+YJjUcPK2X8YxRaR33dGRml/qQpb57+MVUXadZV+/fqlc88///zZsRtuuKH0c7xPf/nLX0rb8V/xPve5z2XHGF1x+OGHJ/vnP/951o7z16abbppszrUR+RyoETf0+fnnn59s/Vdr/qsa20Xk/wrG6EzdF1RFQNTHpsoXmoXOp6QqJJ//+q39i1Gkv/nNb0rPwSgbjWZlv6/6l8onn3wy2aeeemp2bPTo0cnmfKF7D8LfFZH/a76uL2SNNdZI9r333lvarpnMMMMM6V9Tdf/E9Vz7F+cbrndrrrlm1o5ruM5R7I/XX399svX+sa/zX3c1CojRAbpH5Xpx7rnnJlvXYO6ZqvarXPuqImw0kuOmm24qbdtd+vXrlyKcVVpRFQnGe9RohL3eL0bFcK+k+wFGeDAqVdc+Rjdy/EaUR9xwTY+ollRxrBONzKyip/aon3zySZpvtt566+wYo081Uo9jjj64/fbbS79L7xn3I9zDKJzrGR2rcF7W6ES9/jq6/+C4atTHOu6rpJpXXnllp+eYEmaZZZa0D7j//vuzY1QhaAQR1y76s7sqG+4hVQLFfQr9dNFFF2Xt+DldGzgGNAqZaJQN4TuRZZddNtkaYfOrX/0q2frMzeuoelfiiBtjjDHGGGOMMcaYFsUvbowxxhhjjDHGGGNaFL+4McYYY4wxxhhjjGlRiq7kUenTp0+trnFV3S71ds8880x2jBo05gDQ7NfU22uWelZmom63qmJTd8uBX3fddclm7owvfOELWbvDDjss2aptLSsBrrl2qCllVZCIz3TYw4cPj7Fjxza9vNv3vve97Bi10kqZtnLnnXfO2h133HHJpgYyIs+fQd2javmoM2a+BK04xMzxqktkLghWZ/jKV76StaPuUTWczAbOPqf6VOaF0MpgzCkwevToh2u12srRBBot667Z9gn7rPZX+kd15syxwvlD9dHUs26++ebJfvrpp7N2vEeaKZ95BHhvmcsqItf3an/i9VN7qvlqmH9KS/3x/jSrHPgcc8xRq99nzSfCqllatYeVK1g9TSveUHfM6nUREVtttVWyTzrppGRr/iZqwFkhSMci52EtRcocUJwDtL8wz4vef+b0oC6YemFF76noq6fKWKwqX0u/MmeF5s7gOb773e9mx5hzgvl9Bg8enLVjfgWOB+0XPL/mf2CeOa5jWtKTc6+egxpxHtMcT1XU14R33nknxo8f3/R1UavvVFWBoA+rKl9wP6PV91h1gzljrrnmmqzdNttsk+wDDjgg2Vp1jlp7rSq14447Jpu5GTSfzkYbbZRsrWhUlduAcK7VXBw77LADr7FpY7Fv3761+v5B83wwv5LmaKy6VsI5UNePVVddNdnMbcJxE5H3E86jnIcjIn7yk58kW9dF5nJgLjNt1yhcn7UaKHODaaWc+h51zJgx8cknnzRtXazv07R/cZ+nVWNYFr3R/b5WfKFPv//97ye7nuOus2MbbLBBsnfdddesHe/rPvvskx3jvpHVHJkPMCLPr6M5Mu++++5kc3+kfZ/XofOK0LSxOPvss9fqVcc0FxL7lObf476A86vmMz3zzDOTrXty5jlkVUClrLyz5lhlvkadK9nv6AM9B/e5WmGM11uVv4x9gfv8iHwP1qw9anfLgXOPwb6nlTWJ5u/j+K6qQMmxyXvOdTUi91Ojz+v6noP7Jc13o3vWOszlF5E/j06G0rHoiBtjjDHGGGOMMcaYFsUvbowxxhhjjDHGGGNalC5JpRg2VS+5WOell15KtkpkGO5IqYqGWDMsX8NVWf6XpTa1PKHKr5qJhksyfEuvgyFWLE245557Zu1YHldL25JpHfpGWM7573//e3ZM70Mj/O1vf8v+Zjjy6aef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",
      "text/plain": [
       "<Figure size 1440x288 with 20 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "n = 10\n",
    "plt.figure(figsize=(20, 4))\n",
    "for i in range(n):\n",
    "\n",
    "    # display original + noise\n",
    "    ax = plt.subplot(2, n, i + 1)\n",
    "    plt.title(\"original + noise\")\n",
    "    plt.imshow(tf.squeeze(x_test_noisy[i]))\n",
    "    plt.gray()\n",
    "    ax.get_xaxis().set_visible(False)\n",
    "    ax.get_yaxis().set_visible(False)\n",
    "\n",
    "    # display reconstruction\n",
    "    bx = plt.subplot(2, n, i + n + 1)\n",
    "    plt.title(\"reconstructed\")\n",
    "    plt.imshow(tf.squeeze(decoded_imgs[i]))\n",
    "    plt.gray()\n",
    "    bx.get_xaxis().set_visible(False)\n",
    "    bx.get_yaxis().set_visible(False)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "ErGrTnWHoUYl"
   },
   "source": [
    "## 案例三: 异常检测\n",
    "\n",
    "## Overview\n",
    "\n",
    "\n",
    "\n",
    "数据集包含 5,000 组数据,每组数据有140个点. 这是一个有监督学习。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "i5estNaur_Mh"
   },
   "source": [
    "### Load ECG data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "y35nsXLPsDNX"
   },
   "source": [
    "导入数据集"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "id": "KmKRDJWgsFYa"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "      <th>9</th>\n",
       "      <th>...</th>\n",
       "      <th>131</th>\n",
       "      <th>132</th>\n",
       "      <th>133</th>\n",
       "      <th>134</th>\n",
       "      <th>135</th>\n",
       "      <th>136</th>\n",
       "      <th>137</th>\n",
       "      <th>138</th>\n",
       "      <th>139</th>\n",
       "      <th>140</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-0.112522</td>\n",
       "      <td>-2.827204</td>\n",
       "      <td>-3.773897</td>\n",
       "      <td>-4.349751</td>\n",
       "      <td>-4.376041</td>\n",
       "      <td>-3.474986</td>\n",
       "      <td>-2.181408</td>\n",
       "      <td>-1.818286</td>\n",
       "      <td>-1.250522</td>\n",
       "      <td>-0.477492</td>\n",
       "      <td>...</td>\n",
       "      <td>0.792168</td>\n",
       "      <td>0.933541</td>\n",
       "      <td>0.796958</td>\n",
       "      <td>0.578621</td>\n",
       "      <td>0.257740</td>\n",
       "      <td>0.228077</td>\n",
       "      <td>0.123431</td>\n",
       "      <td>0.925286</td>\n",
       "      <td>0.193137</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-1.100878</td>\n",
       "      <td>-3.996840</td>\n",
       "      <td>-4.285843</td>\n",
       "      <td>-4.506579</td>\n",
       "      <td>-4.022377</td>\n",
       "      <td>-3.234368</td>\n",
       "      <td>-1.566126</td>\n",
       "      <td>-0.992258</td>\n",
       "      <td>-0.754680</td>\n",
       "      <td>0.042321</td>\n",
       "      <td>...</td>\n",
       "      <td>0.538356</td>\n",
       "      <td>0.656881</td>\n",
       "      <td>0.787490</td>\n",
       "      <td>0.724046</td>\n",
       "      <td>0.555784</td>\n",
       "      <td>0.476333</td>\n",
       "      <td>0.773820</td>\n",
       "      <td>1.119621</td>\n",
       "      <td>-1.436250</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-0.567088</td>\n",
       "      <td>-2.593450</td>\n",
       "      <td>-3.874230</td>\n",
       "      <td>-4.584095</td>\n",
       "      <td>-4.187449</td>\n",
       "      <td>-3.151462</td>\n",
       "      <td>-1.742940</td>\n",
       "      <td>-1.490659</td>\n",
       "      <td>-1.183580</td>\n",
       "      <td>-0.394229</td>\n",
       "      <td>...</td>\n",
       "      <td>0.886073</td>\n",
       "      <td>0.531452</td>\n",
       "      <td>0.311377</td>\n",
       "      <td>-0.021919</td>\n",
       "      <td>-0.713683</td>\n",
       "      <td>-0.532197</td>\n",
       "      <td>0.321097</td>\n",
       "      <td>0.904227</td>\n",
       "      <td>-0.421797</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.490473</td>\n",
       "      <td>-1.914407</td>\n",
       "      <td>-3.616364</td>\n",
       "      <td>-4.318823</td>\n",
       "      <td>-4.268016</td>\n",
       "      <td>-3.881110</td>\n",
       "      <td>-2.993280</td>\n",
       "      <td>-1.671131</td>\n",
       "      <td>-1.333884</td>\n",
       "      <td>-0.965629</td>\n",
       "      <td>...</td>\n",
       "      <td>0.350816</td>\n",
       "      <td>0.499111</td>\n",
       "      <td>0.600345</td>\n",
       "      <td>0.842069</td>\n",
       "      <td>0.952074</td>\n",
       "      <td>0.990133</td>\n",
       "      <td>1.086798</td>\n",
       "      <td>1.403011</td>\n",
       "      <td>-0.383564</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.800232</td>\n",
       "      <td>-0.874252</td>\n",
       "      <td>-2.384761</td>\n",
       "      <td>-3.973292</td>\n",
       "      <td>-4.338224</td>\n",
       "      <td>-3.802422</td>\n",
       "      <td>-2.534510</td>\n",
       "      <td>-1.783423</td>\n",
       "      <td>-1.594450</td>\n",
       "      <td>-0.753199</td>\n",
       "      <td>...</td>\n",
       "      <td>1.148884</td>\n",
       "      <td>0.958434</td>\n",
       "      <td>1.059025</td>\n",
       "      <td>1.371682</td>\n",
       "      <td>1.277392</td>\n",
       "      <td>0.960304</td>\n",
       "      <td>0.971020</td>\n",
       "      <td>1.614392</td>\n",
       "      <td>1.421456</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 141 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        0         1         2         3         4         5         6    \\\n",
       "0 -0.112522 -2.827204 -3.773897 -4.349751 -4.376041 -3.474986 -2.181408   \n",
       "1 -1.100878 -3.996840 -4.285843 -4.506579 -4.022377 -3.234368 -1.566126   \n",
       "2 -0.567088 -2.593450 -3.874230 -4.584095 -4.187449 -3.151462 -1.742940   \n",
       "3  0.490473 -1.914407 -3.616364 -4.318823 -4.268016 -3.881110 -2.993280   \n",
       "4  0.800232 -0.874252 -2.384761 -3.973292 -4.338224 -3.802422 -2.534510   \n",
       "\n",
       "        7         8         9    ...       131       132       133       134  \\\n",
       "0 -1.818286 -1.250522 -0.477492  ...  0.792168  0.933541  0.796958  0.578621   \n",
       "1 -0.992258 -0.754680  0.042321  ...  0.538356  0.656881  0.787490  0.724046   \n",
       "2 -1.490659 -1.183580 -0.394229  ...  0.886073  0.531452  0.311377 -0.021919   \n",
       "3 -1.671131 -1.333884 -0.965629  ...  0.350816  0.499111  0.600345  0.842069   \n",
       "4 -1.783423 -1.594450 -0.753199  ...  1.148884  0.958434  1.059025  1.371682   \n",
       "\n",
       "        135       136       137       138       139  140  \n",
       "0  0.257740  0.228077  0.123431  0.925286  0.193137  1.0  \n",
       "1  0.555784  0.476333  0.773820  1.119621 -1.436250  1.0  \n",
       "2 -0.713683 -0.532197  0.321097  0.904227 -0.421797  1.0  \n",
       "3  0.952074  0.990133  1.086798  1.403011 -0.383564  1.0  \n",
       "4  1.277392  0.960304  0.971020  1.614392  1.421456  1.0  \n",
       "\n",
       "[5 rows x 141 columns]"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Download the dataset\n",
    "#dataframe = pd.read_csv('http://storage.googleapis.com/download.tensorflow.org/data/ecg.csv', header=None)\n",
    "dataframe = pd.read_csv('ecg.csv', header=None)\n",
    "raw_data = dataframe.values\n",
    "dataframe.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "id": "UmuCPVYKsKKx"
   },
   "outputs": [],
   "source": [
    "# The last element contains the labels\n",
    "labels = raw_data[:, -1]\n",
    "\n",
    "# The other data points are the electrocadriogram data\n",
    "data = raw_data[:, 0:-1]\n",
    "\n",
    "train_data, test_data, train_labels, test_labels = train_test_split(\n",
    "    data, labels, test_size=0.2, random_state=21\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "byK2vP7hsMbz"
   },
   "source": [
    "将数据做 Normalize  `[0,1]`.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "id": "tgMZVWRKsPx6"
   },
   "outputs": [],
   "source": [
    "min_val = tf.reduce_min(train_data)\n",
    "max_val = tf.reduce_max(train_data)\n",
    "\n",
    "train_data = (train_data - min_val) / (max_val - min_val)\n",
    "test_data = (test_data - min_val) / (max_val - min_val)\n",
    "\n",
    "train_data = tf.cast(train_data, tf.float32)\n",
    "test_data = tf.cast(test_data, tf.float32)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "BdSYr2IPsTiz"
   },
   "source": [
    "训练过程中只使用正确的数据集"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "id": "VvK4NRe8sVhE"
   },
   "outputs": [],
   "source": [
    "train_labels = train_labels.astype(bool)\n",
    "test_labels = test_labels.astype(bool)\n",
    "\n",
    "normal_train_data = train_data[train_labels]\n",
    "normal_test_data = test_data[test_labels]\n",
    "\n",
    "anomalous_train_data = train_data[~train_labels]\n",
    "anomalous_test_data = test_data[~test_labels]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "wVcTBDo-CqFS"
   },
   "source": [
    "画一个正常的 ECG. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "id": "ZTlMIrpmseYe"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.grid()\n",
    "plt.plot(np.arange(140), normal_train_data[9])\n",
    "plt.title(\"A Normal ECG\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "QpI9by2ZA0NN"
   },
   "source": [
    "画一个不正常的 ECG."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "id": "zrpXREF2siBr"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.grid()\n",
    "plt.plot(np.arange(140), anomalous_train_data[2])\n",
    "plt.title(\"An Anomalous ECG\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "0DS6QKZJslZz"
   },
   "source": [
    "### 建立模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "id": "bf6owZQDsp9y"
   },
   "outputs": [],
   "source": [
    "class AnomalyDetector(Model):\n",
    "  def __init__(self):\n",
    "    super(AnomalyDetector, self).__init__()\n",
    "    self.encoder = tf.keras.Sequential([\n",
    "      layers.Dense(32, activation=\"relu\"),\n",
    "      layers.Dense(16, activation=\"relu\"),\n",
    "      layers.Dense(8, activation=\"relu\")])\n",
    "    \n",
    "    self.decoder = tf.keras.Sequential([\n",
    "      layers.Dense(16, activation=\"relu\"),\n",
    "      layers.Dense(32, activation=\"relu\"),\n",
    "      layers.Dense(140, activation=\"sigmoid\")])\n",
    "    \n",
    "  def call(self, x):\n",
    "    encoded = self.encoder(x)\n",
    "    decoded = self.decoder(encoded)\n",
    "    return decoded\n",
    "\n",
    "autoencoder = AnomalyDetector()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "id": "gwRpBBbg463S"
   },
   "outputs": [],
   "source": [
    "autoencoder.compile(optimizer='adam', loss='mae')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "zuTy60STBEy4"
   },
   "source": [
    "注意在训练的时候只使用好的数据集，测试的时候使用全部数据集"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "id": "V6NFSs-jsty2"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/20\n",
      "5/5 [==============================] - 1s 38ms/step - loss: 0.0574 - val_loss: 0.0528\n",
      "Epoch 2/20\n",
      "5/5 [==============================] - 0s 8ms/step - loss: 0.0546 - val_loss: 0.0511\n",
      "Epoch 3/20\n",
      "5/5 [==============================] - 0s 8ms/step - loss: 0.0509 - val_loss: 0.0488\n",
      "Epoch 4/20\n",
      "5/5 [==============================] - 0s 8ms/step - loss: 0.0465 - val_loss: 0.0467\n",
      "Epoch 5/20\n",
      "5/5 [==============================] - 0s 10ms/step - loss: 0.0419 - val_loss: 0.0445\n",
      "Epoch 6/20\n",
      "5/5 [==============================] - 0s 18ms/step - loss: 0.0379 - val_loss: 0.0426\n",
      "Epoch 7/20\n",
      "5/5 [==============================] - 0s 22ms/step - loss: 0.0346 - val_loss: 0.0411\n",
      "Epoch 8/20\n",
      "5/5 [==============================] - 0s 17ms/step - loss: 0.0320 - val_loss: 0.0398\n",
      "Epoch 9/20\n",
      "5/5 [==============================] - 0s 12ms/step - loss: 0.0301 - val_loss: 0.0388\n",
      "Epoch 10/20\n",
      "5/5 [==============================] - 0s 13ms/step - loss: 0.0286 - val_loss: 0.0378\n",
      "Epoch 11/20\n",
      "5/5 [==============================] - 0s 13ms/step - loss: 0.0273 - val_loss: 0.0368\n",
      "Epoch 12/20\n",
      "5/5 [==============================] - 0s 10ms/step - loss: 0.0263 - val_loss: 0.0359\n",
      "Epoch 13/20\n",
      "5/5 [==============================] - 0s 9ms/step - loss: 0.0254 - val_loss: 0.0349\n",
      "Epoch 14/20\n",
      "5/5 [==============================] - 0s 9ms/step - loss: 0.0246 - val_loss: 0.0343\n",
      "Epoch 15/20\n",
      "5/5 [==============================] - 0s 9ms/step - loss: 0.0239 - val_loss: 0.0337\n",
      "Epoch 16/20\n",
      "5/5 [==============================] - 0s 10ms/step - loss: 0.0231 - val_loss: 0.0332\n",
      "Epoch 17/20\n",
      "5/5 [==============================] - 0s 10ms/step - loss: 0.0224 - val_loss: 0.0327\n",
      "Epoch 18/20\n",
      "5/5 [==============================] - 0s 9ms/step - loss: 0.0219 - val_loss: 0.0322\n",
      "Epoch 19/20\n",
      "5/5 [==============================] - 0s 9ms/step - loss: 0.0214 - val_loss: 0.0316\n",
      "Epoch 20/20\n",
      "5/5 [==============================] - 0s 8ms/step - loss: 0.0209 - val_loss: 0.0314\n"
     ]
    }
   ],
   "source": [
    "history = autoencoder.fit(normal_train_data, normal_train_data, \n",
    "          epochs=20, \n",
    "          batch_size=512,\n",
    "          validation_data=(test_data, test_data),\n",
    "          shuffle=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "id": "OEexphFwwTQS"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7fde356084c0>"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(history.history[\"loss\"], label=\"Training Loss\")\n",
    "plt.plot(history.history[\"val_loss\"], label=\"Validation Loss\")\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "ceI5lKv1BT-A"
   },
   "source": [
    "通过标准差来判断是不是标准数据  Classify an ECG as anomalous if the reconstruction error is greater than one standard deviation from the normal training examples. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "id": "hmsk4DuktxJ2"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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ty9jx46lvLwcgFdeeYU+ffqQkpLC9OnT2b9/P6+//jovvvgiaWlprFixghtvvJE77riDIUOG8Mgjj/Dkk08ya9asqnj79etXNaTygw8+ICUlhdTUVK677jpWrVrFggULePjhh0lLS2Pv3r01yv0uWbKE/v37k5yczM0330xFRQWgTaL629/+xoABA0hOTq5630rb11B3i+nXX7F+/jnWuXMxbtwIwJAuh8g41o7C/WoKir80aRy6X/i5fq7L5WLJkiXccsstANx22228/vrrJCUl8euvv3LXXXfx008/cc899zBy5EjmzZuHy+WipKSEDRs28O677/Lrr78ipWTIkCGMHDmSyMhIdu/ezezZs3nzzTe58sor+eKLL7j22mt55pln2LdvH2azmYKCAiIiIrjjjjsICQnhoYceAuDtt98mKyuLVatWodfrefLJJ+uMPTMzk6effppVq1YRExPDiRMniIqK4rLLLuOSSy5h2rRpNfa32WzceOONLFmyhB49enD99dfz2muvcd999wEQExPDxo0b+e9//8usWbN46623zuTsKwGmvu4W/cGDWL/9Fnd4OACmzEzKDAaGdu6KW+pYtegEE/6gZlH7g2qh11JeXk5aWhodOnTg+PHjjBkzhpKSElatWsUVV1xBWloat99+O0ePalfzf/rpJ+68805A638PDw/nl19+YfLkyQQHBxMSEsKUKVNYsWIFAImJiaSlpQEwcODAqhZ1SkoKM2bM4KOPPsJgqP/v7BVXXIFer2/wPfz0009cccUVVaUJoqKiGtx/586dJCYm0qNHDwBuuOEGli9fXvX4lClTTolXaft++gmCTI6a3S1SYvnxR9yhodg//xz27sU9cCDW+fMZJlegE25+WaaKdflL622h+6l+bmUfellZGRdffDGvvvoqN954IxEREWz2wjeG2iV5K7tcvvnmG5YvX87XX3/NP//5T7Zu3Vrn8ysLfkHNcr2gtbR9oTLm2iWElbZt82bo2z67RneLYfduDAcPUj55MpZRoxB6PXz/Pe7UVNp98SHXRk5g1eb+/gv6LKda6PUICgrilVde4fnnnycoKIjExETmzp0LgJSS3zwLLF500UW89tprgNZNU1hYyIgRI/jqq68oKyujtLSUefPmMWLEiHpfy+12c+jQIUaNGsWzzz5LYWEhJSUljZbdTUhIYKOn/3Lj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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "encoded_data = autoencoder.encoder(normal_test_data).numpy()\n",
    "decoded_data = autoencoder.decoder(encoded_data).numpy()\n",
    "\n",
    "plt.plot(normal_test_data[0], 'b')\n",
    "plt.plot(decoded_data[0], 'r')\n",
    "plt.fill_between(np.arange(140), decoded_data[0], normal_test_data[0], color='lightcoral')\n",
    "plt.legend(labels=[\"Input\", \"Reconstruction\", \"Error\"])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "ocA_q9ufB_aF"
   },
   "source": [
    "使用非正常的数据来测试"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "id": "vNFTuPhLwTBn"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "encoded_data = autoencoder.encoder(anomalous_test_data).numpy()\n",
    "decoded_data = autoencoder.decoder(encoded_data).numpy()\n",
    "\n",
    "plt.plot(anomalous_test_data[0], 'b')\n",
    "plt.plot(decoded_data[0], 'r')\n",
    "plt.fill_between(np.arange(140), decoded_data[0], anomalous_test_data[0], color='lightcoral')\n",
    "plt.legend(labels=[\"Input\", \"Reconstruction\", \"Error\"])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "ocimg3MBswdS"
   },
   "source": [
    "### 检测异常"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "Xnh8wmkDsypN"
   },
   "source": [
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "TeuT8uTA5Y_w"
   },
   "source": [
    "将数据重建的错误打印出来。（正常数据集）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "id": "N7FltOnHu4-l"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "reconstructions = autoencoder.predict(normal_train_data)\n",
    "train_loss = tf.keras.losses.mae(reconstructions, normal_train_data)\n",
    "\n",
    "plt.hist(train_loss[None,:], bins=50)\n",
    "plt.xlabel(\"Train loss\")\n",
    "plt.ylabel(\"No of examples\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "mh-3ChEF5hog"
   },
   "source": [
    "选择  threshold "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "id": "82hkl0Chs3P_",
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Threshold:  0.0377243\n"
     ]
    }
   ],
   "source": [
    "threshold = np.mean(train_loss) + np.std(train_loss)\n",
    "print(\"Threshold: \", threshold)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "打印异常信号的数据重建的错误"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "id": "sKVwjQK955Wy"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "reconstructions = autoencoder.predict(anomalous_test_data)\n",
    "test_loss = tf.keras.losses.mae(reconstructions, anomalous_test_data)\n",
    "\n",
    "plt.hist(test_loss[None, :], bins=50)\n",
    "plt.xlabel(\"Test loss\")\n",
    "plt.ylabel(\"No of examples\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "PFVk_XGE6AX2"
   },
   "source": [
    "一旦超过threshold，将一张 ECG 图判断为异常"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "id": "mkgJZfhh6CHr"
   },
   "outputs": [],
   "source": [
    "def predict(model, data, threshold):\n",
    "  reconstructions = model(data)\n",
    "  loss = tf.keras.losses.mae(reconstructions, data)\n",
    "  return tf.math.less(loss, threshold)\n",
    "\n",
    "def print_stats(predictions, labels):\n",
    "  print(\"Accuracy = {}\".format(accuracy_score(labels, predictions)))\n",
    "  print(\"Precision = {}\".format(precision_score(labels, predictions)))\n",
    "  print(\"Recall = {}\".format(recall_score(labels, predictions)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {
    "id": "sOcfXfXq6FBd"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy = 0.945\n",
      "Precision = 0.9941291585127201\n",
      "Recall = 0.9071428571428571\n"
     ]
    }
   ],
   "source": [
    "preds = predict(autoencoder, test_data, threshold)\n",
    "print_stats(preds, test_labels)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "accelerator": "GPU",
  "colab": {
   "collapsed_sections": [],
   "name": "autoencoder.ipynb",
   "toc_visible": true
  },
  "interpreter": {
   "hash": "7c97a5f9cbebfc99162fbbc8aacb21db92b90ed07dd9db0ea120af1884e21e6d"
  },
  "kernelspec": {
   "display_name": "Python [conda env:tensorflow20]",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
